package cn.tedu.csmall.product.service;

import cn.tedu.csmall.product.pojo.dto.CategoryAddNewDto;
import cn.tedu.csmall.product.pojo.dto.CategoryUpdateDto;
import cn.tedu.csmall.product.pojo.vo.CategoryListItemVo;
import cn.tedu.csmall.product.pojo.vo.CategoryStandardVo;

import java.util.List;

public interface CategoryService {
    String ENABLE_TEXT[] = {"禁用", "启用"};
    String DISPLAY_TEXT[] = {"禁用", "启用"};
    // 1. 添加类别
    void addNew(CategoryAddNewDto categoryAddNewDTO);

    // 3. 删除类别
    // 5. 修改类别
    // 4. 根据ID查询类别详情
    // 2. 查询类别列表

    /**
     * 删除类别
     * @param id 尝试删除的类别数据的ID
     */
    void delete(Long id);

    void setEnable(Long id);
    void setDisable(Long id);

    /**
     * 根据父级类别查询其子级类别列表
     *
     * @param parentId 父级类别的id
     * @return 类别列表
     */
    List<CategoryListItemVo> listByParentId(Long parentId);

    void setIsDisplay(Long id);
    void setNotDisplay(Long id);

    /**
     * 修改类别数据
     * @param id 被修改的类别数据的ID
     * @param categoryUpdateDTO 类别的新数据
     */
    void updateInfoById(Long id, CategoryUpdateDto categoryUpdateDTO);

    /**
     * 根据id查询类别数据详情
     *
     * @param id 类别id
     * @return 匹配的类别数据详情，如果没有匹配的数据，则返回null
     */
    CategoryStandardVo getStandardById(Long id);

}
